﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Reflection;//assembly
using System.Windows.Forms;
using System.IO;
using System.Configuration;
using Classes.Administrativo;


namespace BrasilSolutions
{
    public partial class frmLogin : Form
    {
        public frmLogin()
        {
            InitializeComponent();
        }
        
        /// <summary>
        /// Chama o frmMenu carregando o Menu de acordo com o usuario
        /// logado e fechar o frmLogin
        /// </summary>
        private void ChamaForm()
        {
            try
            {
                Screen Srn = Screen.PrimaryScreen;
                this.Hide();


                frmMenu form = new frmMenu();
                form.Width = Srn.Bounds.Width;
                form.Height = Srn.Bounds.Height;
                form.ShowDialog();
                this.Close();
                this.Dispose();
                Application.Exit();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao Realizar a Operação! Erro:" + ex.ToString());
            }
        }

        #region VALIDAÇÔES

        //Error provider
        private void txtLogin_Leave(object sender, EventArgs e)
        {
            if (this.txtLogin.Text == string.Empty)
            {
                errorProvider1.SetError(this.txtLogin, "Campo obrigatório!");                
            }
            else
            {
                errorProvider1.SetError(this.txtLogin, "");
            }
        }

        //Error provider
        private void txtSenha_Leave(object sender, EventArgs e)
        {
        }


        /// <summary>
        /// Carrega o Form Menu de acordo com o nivel do usuario que esta logando
        /// no sistema e logo após o login ser efetuado fecha o Form Login;
        /// Através da função ChamForm;
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void txtSenha_Validating(object sender, CancelEventArgs e)
        {
            
        }
    
        private void frmLogin_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                this.SelectNextControl(this.ActiveControl, !e.Shift, true, true, true);
            }
        }          
        
        private void txtLogin_Enter(object sender, EventArgs e)
        {
            txtLogin.SelectAll();
        }

        private void txtSenha_Enter(object sender, EventArgs e)
        {
            txtSenha.SelectAll();
        }                   

        /// <summary>
        /// Carrega e redimenciona o tamanha da imagen o logo da frmLogin;
        /// Mostro o diretorio onde se encontra a imagen(caminho);
        /// atraves do metodo redimenciona na clsImagen a imagen será
        /// ajustada para o tamanho do ptbLogo;
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmLogin_Shown(object sender, EventArgs e)
        {
        }
     
        //Bloqueia digitação de caracteres especiais
        private void txtLogin_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar != 8) && (e.KeyChar >= 33 && e.KeyChar <= 45))
                e.Handled = true;
            if ((e.KeyChar >= 58 && e.KeyChar <= 64 || e.KeyChar == 168))
                e.Handled = true;
            if ((e.KeyChar == 92 || e.KeyChar == 47 || e.KeyChar == 124))
                e.Handled = true;
        }

        //Bloqueia digitação de caracteres especiais
        private void txtSenha_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar != 8) && (e.KeyChar >= 33 && e.KeyChar <= 45))
                e.Handled = true;
            if ((e.KeyChar >= 58 && e.KeyChar <= 64 || e.KeyChar == 168))
                e.Handled = true;
            if ((e.KeyChar == 92 || e.KeyChar == 47 || e.KeyChar == 124))
                e.Handled = true;
        }

        #endregion        

        private void frmLogin_Load(object sender, EventArgs e)
        {
            try
            {
            }
            catch (Exception ex)
            {
                MessageBox.Show("Problemas ao logar! Info.: " + ex.Message);
            }
        }

        private void txtLogin_Click(object sender, EventArgs e)
        {
            txtSenha.Clear();
        }

        private void btnEntrar_Click(object sender, EventArgs e)
        {
            clsUsuarioTO uTO = new clsUsuarioTO(txtLogin.Text, txtSenha.Text, 0, string.Empty, string.Empty,DateTime.MinValue,false,false);
            clsUsuario u = new clsUsuario();
            if (u.ValidaUsuario(uTO))
            {
                frmMenu form = new frmMenu();
                form.ShowDialog();
            }
            else
                MessageBox.Show("Usuário ou senha incorreto!", "Verifique");
        }
    }              
}

